package com.handinglian.ai.notice.service;

import com.handinglian.ai.common.dto.CommonPage;
import com.handinglian.ai.notice.dto.*;
import com.handinglian.ai.notice.entity.Notice;
import com.handinglian.ai.notice.param.NoticeCreateParam;
import com.handinglian.ai.notice.param.NoticeUpdateParam;
import com.handinglian.ai.template.dto.CallTemplateDto;
import com.handinglian.ai.template.param.CallTemplateCreateParam;
import com.handinglian.ai.template.param.CallTemplateUpdateParam;
import org.springframework.ui.ModelMap;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface NoticeService {
    int create(NoticeCreateParam createParam) throws Exception;

    CommonPage<NoticeDto> listPage(String titleOrTemplate, String type, String category, String method, String executeState, String sortField, String sortOrder, Integer pageNum, Integer pageSize);

    int delete(Integer id);

    int update(NoticeUpdateParam updateParam);

    int update(Notice notice);

    NoticeBaseDto getNoticeBase(Integer id);

    NoticeSimpleDto getSimple(Integer id);

    CommonPage<NoticeDetailDto> listDetail(Integer id, String nameOrPhoneOrAddress, String keyOrResult, String startTime, String endTime, String phoneStatus, String sortField, String sortOrder, Integer pageNum, Integer pageSize);

     int deleteDetail(Integer massId);

     int deleteDetailBatch(List<Integer> massIds);

    int deleteBatch(String id);

    void censusNotice();

    Notice get(Integer id);

    Integer countCallTemplate(Integer templateId);

    Integer countMessageTemplate(Integer templateId);

    Integer countKeyGroup(Integer keyGroupId);
}
